
package Controlador;


import Modelo.Choferes;
import Modelo.Socio;
import Vista.JFrameSocio;
import Vista.Mensajes;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.LinkedList;

public class ControladorSocio implements ActionListener, KeyListener
{
private JFrameSocio formSocio;
    private LinkedList<Socio> listaSocio;

    public ControladorSocio(LinkedList<Socio> ListaS) {
        listaSocio = ListaS;
        formSocio = new JFrameSocio();
        formSocio.agregarListener(this, this);
        formSocio.setVisible(true);
        Enabled(false);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(formSocio.getBtnSalirS())) {
            formSocio.dispose();
        }

        if (e.getSource().equals(formSocio.getBtnBuscarS())) {
            new ControladorConsulSocio(listaSocio);
        }
        if (e.getSource().equals(formSocio.getBtnGuardarS())) {
            Grabar();
        }
    }

    @Override
    public void keyTyped(KeyEvent e) {
        
    }

    @Override
    public void keyPressed(KeyEvent e) {
        if (e.getSource().equals(formSocio.getTxtCedulaS())) 
            CedulakeyPressed(e);
    }

    @Override
    public void keyReleased(KeyEvent e) {
    }
    //------------------------------------------
     private void Enabled(boolean Status) 
    {
        formSocio.getTxtCedulaS().setEnabled(!Status);
        formSocio.getTxtNombreS().setEnabled(Status);
        formSocio.getTxtCargoS().setEnabled(Status);
        formSocio.getTxtCantUT().setEnabled(Status);
    }
//------------------------------------------------------------
      private void Limpiar() {
        formSocio.getTxtCedulaS().setText("");
        formSocio.getTxtNombreS().setText("");
        formSocio.getTxtCargoS().setText("");
        formSocio.getTxtCantUT().setText(null);
    }
//---------------------------------------------------------------
private void Grabar() {
       Socio socio = new Socio();
        String Cadena;

        Cadena = formSocio.getTxtCedulaS().getText();
        if (Cadena.length() == 0) {
            Mensajes.Aviso("Cedula Vacia", "");
            formSocio.getTxtCedulaS().requestFocusInWindow();
            return;
        }

        Cadena = formSocio.getTxtNombreS().getText();
        if (Cadena.length() == 0) {
            Mensajes.Aviso("Nombre Vacio", "");
            formSocio.getTxtNombreS().requestFocusInWindow();
            return;
        }

        Cadena = formSocio.getTxtCargoS().getText();
        if (Cadena.length() == 0) {
            Mensajes.Aviso("Cargo Vacio", "");
            formSocio.getTxtCargoS().requestFocusInWindow();
            return;
        }

        Cadena = formSocio.getTxtCantUT().getText();
        if (Cadena.length() == 0) {
            Mensajes.Aviso("Cantidad vacia", "");
           formSocio.getTxtCantUT().requestFocusInWindow();
            return;
        }
           

        socio.Socio(formSocio.getTxtCedulaS().getText(),
                formSocio.getTxtNombreS().getText(),
                formSocio.getTxtCargoS().getText(),
              Integer.parseInt(formSocio.getTxtCantUT().getText()));

        listaSocio.add(socio);
         Mensajes.Aviso("Socio guardado con exito", "");
         Limpiar();
         Enabled(false);
         formSocio.getTxtCedulaS().requestFocusInWindow();
    }

public int Existesocio(String Cedsocio) {
        int i = 0, Posi = -1;

        Socio socio;
        String CedLista;

        for (i = 0; i < listaSocio.size(); i++) {
            socio = listaSocio.get(i);

            CedLista = socio.getCedula();

            if (CedLista.equals(Cedsocio)) {
                Posi = i;
                return Posi;
            }

        }

        return Posi;
    }
//---------------------------------------------------------------

 private void CedulakeyPressed(KeyEvent e) {
        if (e.getSource().equals(formSocio.getTxtCedulaS())) {

            String Cadena;
            int Posisocio;
            Socio socio = new Socio();
            Cadena = formSocio.getTxtCedulaS().getText();

            if (e.VK_ENTER == e.getKeyCode() && Cadena.length() != 8) {
                Mensajes.Aviso("Cedula invalida", "");
                formSocio.getTxtCedulaS().requestFocusInWindow();
            }
            if (e.VK_ENTER == e.getKeyCode() && Cadena.length() == 8) {

                Posisocio = Existesocio(Cadena);
                if (Posisocio >= 0) {
                    socio = listaSocio.get(Posisocio);
                    formSocio.getTxtNombreS().setText(socio.getNombre());
                    formSocio.getTxtCargoS().setText(socio.getCargo());
                    formSocio.getTxtCantUT().setText(Integer.toString(socio.getCantUT()));

                    Mensajes.Aviso("Socio ya Existe", "");
                    Limpiar();

                } else {
                    Enabled(true);
                    formSocio.getTxtNombreS().requestFocusInWindow();

                }
            }

        }
    }
}